Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models. A number of different modeling techniques can be used to create a 3D model. One such technique is a solid modeling technique, which provides for topological 3D models where the 3D model is a collection of interconnected topological entities (e.g., vertices, edges, and faces). The topological entities have corresponding supporting geometrical entities (e.g., points, trimmed curves, and trimmed surfaces). The trimmed surfaces correspond to the topological faces bounded by the edges. CAD systems may combine solid modeling and other modeling techniques, such as parametric modeling techniques. Parametric modeling techniques can be used to define various parameters for different features and components of a model, and to define relationships between those features and components based on relationships between the various parameters.
A design engineer is a typical user of a 3D CAD system. The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques. The design engineer creates parts and may assemble the parts into a subassembly. Parts and subassemblies may be used to design an assembly.
A solid modeling system may be a feature-based 3D CAD system wherein a part is constructed using various features. Examples of features include bosses, fillets, chamfers, cuts, holes, shells, lofts, and sweeps. Commercially available feature-based modeling systems include the SolidWorks® 2007 software system available from SolidWorks Corporation of Concord, Mass. SolidWorks software and other commercially available CAD systems store the contents of parts, subassemblies, and assemblies in a data file. In addition to features, the contents of CAD data files may include design profiles, layouts, internal components (e.g., bodies), and graphical entities.
Often, new or modified product designs evolve from existing designs, and thus, a design engineer constructs a model that has similar characteristics to a model that has previously been built. However, entities that make up the similar characteristics may not be readily available to use again in a design. The previously built model may be stored in a data file created by a legacy CAD system and not readable by a CAD system currently in use. On the other hand, the currently used CAD system may be able to read the data file created by a legacy system, but the contents of the data file may not be assessable in the granularity desired by the design engineer. Thus, the design engineer may need to construct the same data entities again in their entirety.
Some CAD systems, such as SolidWorks 2007 software, allow design engineers to specify design data that may be used for future designs. Once design data is specified, the design data may be organized for reuse, including for example, specifying and saving data as two-dimensional sketch blocks or library features. To reuse data stored as sketch blocks or library features, a design engineer must have the forethought that the data may be needed again in another design and must proactively specify the appropriate data for later use. Moreover, after saving the design data for reuse, the design data may only be used again after being located. Locating the saved design data may require using a file browser to conduct an extensive manual search in relevant CAD files for the saved data. Once the saved design data is located, the design engineer may select a name of a feature or sketch block and drag the name into the window area in which the part appears, at which time the saved data will graphically appear in the part.
In addition to feature libraries and sketch blocks, CAD systems may also provide feature recognition capabilities. In general, feature recognition capabilities are based on heuristics and identify features of a part created by a non-native CAD system. Moreover, feature recognition techniques do not necessarily capture the design intent because information on how a feature is created may be lacking. Feature recognition techniques may also be limited in scope. For example, a feature recognition process may only recognize features in a currently opened CAD file requiring the user to find the appropriate CAD file, open the file, and then initiate the feature recognition process.
Other methods of locating previously designed CAD data include search mechanisms. SolidWorks 2007 software provides a search mechanism using a textual search technique that locates a part file using a text string. However, the software accesses and opens the entire part rather than a specific entity therein. This is analogous to a web search technique that locates a web page given a text string and opens an entire web page that contains the text.
Time-saving advantages and enhancements to state of the art CAD systems could be achieved by providing an efficient means that allows design engineers to automatically locate needed design data whatever the granularity without having to first proactively save specific segments of design data for reuse, manually browse a file system for the specific segment of design data for reuse, and open the entire file that contains the reusable design data.